<?php

/**
*	版块管理(伪删除和修改)
*
*/

//包含公共文件
include '../../common/common.php';

//接收get传值,用于确定版块
// var_dump($_POST);

$categoryBtn = $_POST['categoryBtn'];
$arrCid         = $_POST['arrCid'];
$orderby       = $_POST['orderby'];
$compere      = $_POST['compere'];
$classname   = $_POST['classname'];

//判断选项是否为空
if (!$arrCid) {
	exit('选项不得为空');
}

$strCid  =  join(',' , $arrCid);

// var_dump($arrCid);
// var_dump($orderby);
// var_dump($compere);
// var_dump($classname);
// var_dump($strCid);


/*************		伪删除数据,修改伪删除的字段值		**********************/
//取出每个cid 比对,判断是否为父级版块
if ($categoryBtn == '回 收') {

	foreach ($arrCid as $valCid) {

		//获取cid
		$cid = $valCid;
		// var_dump($cid);

		//修改当前版块(可能为父级版块,也可能为子级版块)
		$resCurr = myUpdate($link , DB_TABLE_CG , ['cisdel' => 1] , "cid = $cid");

		//判断当前版块是否修改成功
		if (!$resCurr) {
			exit('当前版块回收失败');
		}

		//判断是否为父级cid
		$resCid   = mySelect($link , '*' , DB_TABLE_CG , "where cid=$cid");
		$parentid = $resCid[0]['parentid'];
		$classid   = $resCid[0]['cid'];
		// var_dump($resCid);

		//定义一个空变量,防止报错
		$str = '';

		//判断是否为父级版块
		if  ($parentid == 0) {

			
			//获取父级版块下的子级版块
			$selSon =  mySelect($link , '*' , DB_TABLE_CG  , "where  parentid=$cid");
			// var_dump($selSon);

			//该版块若存在子版块
			if ($selSon) {

				//隐藏父级版块下的子版块
				$resSon = myUpdate($link , DB_TABLE_CG , ['cisdel' => 1 , 'parentdel' => 1] , "parentid=$cid");
				// var_dump($resSon);

				//隐藏子版块成功
				if ($resSon) {
					$str .= '、子版块、';
				}

				//查找出子版块的cid 存入数组
				foreach ($selSon as $valSon) {
					$rowCid[] = $valSon['cid'];
				} 
				//将子版块cid拼接成字符串
				$strRowCid = join(',' , $rowCid);
				// var_dump($rowCid);
				// var_dump($strRowCid);
				
				//查找回收的子版块下的帖子是否存在, 并获取帖子id 
				$selSon2 = mySelect($link , '*' , DB_TABLE_DETAIL  , " where  classid in ($strRowCid)");
				// var_dump($selSon2);

				//若子版块中存在帖子
				if ($selSon2) {

					//修改回收版块下的帖子
					$updateSon2 = myUpdate($link , DB_TABLE_DETAIL , ['isdel' => 1, 'catedel' => 1] , " classid in ($strRowCid)") ;
					// var_dump($updateSon2);

					//隐藏帖子成功
					if ($updateSon2) {
						$str .= '帖子、';
					}

					//获取帖子的id 数组,用于判断评论
					foreach ($selSon2 as $valSon2) {

						$arrId[] = $valSon2['id'];
					}
					$strId = join(',' , $arrId);
					// var_dump($strId);

					//查询帖子的评论
					$selSon3 = mySelect($link , '*' ,DB_TABLE_DETAIL , "where  id in ($strId)");

					//若帖子存在评论,隐藏评论
					if ($selSon3) {

						//隐藏评论
						$updateSon3 = myUpdate($link , DB_TABLE_DETAIL , ['isdel' => 1, 'catedel' => 1, 'detaildel' => 1] , "tid in ($strId)");
						//隐藏评论成功
						if ($updateSon3) {
							$str .= '帖子的评论';
						}

							/**********************************/
							/*	//之后添加评论的回复伪删除过程    */
							/*	//查询评论的回复(sql查询)	     */
							/*	//若评论的回复存在(if判断)	     */
							/*	//修改评论的回复(sql修改)	     */
							/*********************************/
					}
					
				}
				
			}

		} else {

			//若当前版块不是父级版块
			//查询当前版块是否存在帖子
			$selSon2 = mySelect($link , '*' , DB_TABLE_DETAIL , "where  classid=$classid");
			// var_dump($selSon2);

			//若版块中存在帖子
			if ($selSon2) {

				//修改回收版块下的帖子
				$updateSon2 = myUpdate($link , DB_TABLE_DETAIL , ['isdel' => 1, 'catedel' => 1] , "classid=$classid") ;
				// var_dump($updateSon);
				//隐藏帖子成功
				if ($updateSon2) {
					$str .= '、帖子';
				}

				//获取帖子的id 数组,用于判断评论
				foreach ($selSon2 as $valSon2) {

					$arrId[] = $valSon2['id'];
				}
				$strId = join(',' , $arrId);
				// var_dump($strId);

				//查询帖子的评论
				$selSon3 = mySelect($link , '*' ,DB_TABLE_DETAIL , "where  id in ($strId)");

				//若帖子存在评论,隐藏评论
				if ($selSon3) {

					//隐藏评论
					$updateSon3 = myUpdate($link , DB_TABLE_DETAIL , ['isdel' => 1, 'catedel' => 1, 'detaildel' => 1] , "tid in ($strId)");
					//隐藏评论成功
					if ($updateSon3) {
						$str .= '、帖子评论均';
					}
					
						/**********************************/
						/*	//之后添加评论的回复伪删除过程    */
						/*	//查询评论的回复(sql查询)	     */
						/*	//若评论的回复存在(if判断)	     */
						/*	//修改评论的回复(sql修改)	     */
						/*********************************/
				}
				
			}
		
		}

		
	}

	//跳转页面
	 echo  '当前版块' . $str . ' 都 已加入回收站';
	header('refresh:1;url=' . $_SERVER['HTTP_REFERER']);
}


/***********************************************************************/
/*************		批量修改数据		**********************/

//批量修改
if ($categoryBtn == '修 改') {

	//单条数据修改失败退出那条数据的循环,继续下一条数据的修改,同时返回该条报错信息
	foreach ($arrCid as $key  =>  $valCid) {
	
		//获取cid
		$cid = $valCid;
		// var_dump($cid);

		//打开数组
		$orderby2     = trim($orderby[$key]);
		$classname2  = trim($classname[$key]);
		$compere2    = trim($compere[$key]);
		$compere2    = isset($compere2) ? $compere2 : '' ;
		/*//父级版块无版主
		if (!$compere2) {
			
			$compere2 = '';
		} */
		
		
		// var_dump($orderby2);
		// var_dump($classname2);
		// var_dump($compere2);

		//查询数据库
		$result =  mySelect($link , '*' , DB_TABLE_CG , "where cid=$cid'");
		$dbCompere   = $result[0]['compere'];
		$dbClassname = $result[0]['classname'];
		$dbOrderby     = $result[0]['orderby'];
		$parentid     = $result[0]['parentid'];
		
		//定义空变量 , 防止报错
		$resData = '';
		$str = '';

		//判断显示顺序是否为数值 (小数在插入数据库时会自动向上取整)
		if (!is_numeric($orderby2)) {

			$str = '版块名为:<span style="color:red"> ' . $classname2 . ' </span><br / > 显示顺序必须为数字';
			continue;
		}
		//比对数据库
		if ($orderby2 != $dbOrderby) {

			$data['orderby'] = $orderby2;
		}
		
		//若输入了版主
		if ($compere2) {

			//查询数据库
			//查询用户是否存在
			$resCompere  = mySelect($link , '*' , DB_TABLE_USER , "where username='$compere2'");
			
			//判断版主对应的用户是否存在
			if (!$resCompere) {
				$str = '当前设置的用户<span style="color:red"> ' . $compere2 . ' </span>不存在,请重新输入';
				continue;
			}

			//判断修改的版主是否等于原版主一致
			if ($dbCompere != $compere2) {

				$data['compere'] = "$compere2";
			}
			
		}
		
		
		//若版块名与原版块名不一致
		if ($classname2 != $dbClassname) {
			//判断版块名是否为空
			if (!$classname2) {

				$str = '版块名为:<span style="color:red"> ' . $classname2 . ' </span><br / > 版块名不得为空或为0';
				continue;
			} 
			//判断版块名长度
			if (strlen($classname2) < 3   ||   strlen($classname2) > 18) {
				$str = '版块名长度只能在 3~18个字符之间,或 1~6个汉字之间';
				continue;
			}	
			//查询数据库,判断版块名是否已经存在 (版块名唯一)
			$resSel = mySelect($link , '*' , DB_TABLE_CG , "where  classname='$classname2'");
			//若版块不存在  (版块唯一不重名)
			if (!$resSel) {
				/*exit('版块名<span style="color:red"> ' . $classname2 . ' </span><br / >已存在,请重新输入');
				*/
				$data['classname'] = "$classname2";
			} 

			
		}	
			
		
		//判断子版块的父级版块是否也在回收站
		if ($parentid != 0 ) {

			//查询子版块的父级版块
			$resParent = mySelect($link , '*' , DB_TABLE_CG , "where cid=$parentid");
			$resCisdel = $resParent[0]['cisdel'];
			$resClassname = $resParent[0]['classname'];
			// var_dump($resParent);

			//判断父级版块是否在回收站
			if ($resCisdel == 1) {

				$str = '必须先恢复当前版块的父级版块 ' . $resClassname . ' ,才能恢复当前版块' . $classname2;
				continue;
			}
		} 

		// var_dump($data);
		//判断修改的内容是否为空
		if (!$data) {
			$str = '版块名<span style="color:red"> ' . $classname2 . ' </span><br / >未修改';
			continue;
		} else {

			//修改数据库
			$resUpdate = myUpdate($link , DB_TABLE_CG ,$data , "cid = $cid");
			// var_dump($resUpdate);

			//判断单条数据行修改是否成功
			if (!$resUpdate) {

				$str = '版块名<span style="color:red"> ' . $classname2 . ' </span><br / >修改失败';

				continue;
			}
			//将所有结果集打包
			if  (is_numeric($resUpdate)   ||   $resUpdate == false) {
				
				$resData[] = $resUpdate;
			}
				
		}
		

	}

	//判断修改结果
	if (!$resData) {

		//打印输出报错信息
		if ($str) {

			echo $str ;
		} else {
			echo  '您没有修改任何信息';
		}

	} else {
		echo '批量修改成功';
	}

	//跳转页面
	header('refresh:1;url=' . $_SERVER['HTTP_REFERER']);
}